package com.serkol.openai;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

import java.util.Arrays;
// 注册自定义反序列化器
@JsonDeserialize(using = RoleDeserializer.class)
// 修改 OpenAiApi 中的 Role 枚举类，添加空字符串处理
public enum Role {
    @JsonProperty("assistant") ASSISTANT,
    @JsonProperty("user") USER,
    @JsonProperty("system") SYSTEM,
    @JsonEnumDefaultValue UNKNOWN; // 新增默认值

    @JsonCreator
    public static Role fromValue(String value) {
        if (value == null || value.isEmpty()) {
            return UNKNOWN;
        }
        return Arrays.stream(values())
                .filter(role -> role.name().equalsIgnoreCase(value))
                .findFirst()
                .orElse(UNKNOWN);
    }
}
